import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../data/models/collection_item_model.dart';
import '../../providers/favorites_provider.dart';
import '../../providers/selected_item_provider.dart';

class ProductListItem extends ConsumerWidget {
  final CollectionItemData product;

  const ProductListItem({super.key, required this.product});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    // **特性9: Provider 组合 - 多个 Provider 协同工作**
    // 这个小小的列表项，同时依赖了3个不同的 Provider！
    // 1. 从 favoritesProvider 获取收藏状态
    final isFavorite = ref.watch(favoritesProvider.select((favs) => favs.contains(product.id)));

    return ListTile(
      title: Text(product.productName ?? '无标题'),
      subtitle: Text('订单ID: ${product.adId}'),
      trailing: IconButton(
        icon: Icon(
          isFavorite ? Icons.favorite : Icons.favorite_border,
          color: isFavorite ? Colors.red : Colors.grey,
        ),
        onPressed: () {
          // 2. 使用 ref.read 调用 favoritesProvider 的方法来改变状态
          ref.read(favoritesProvider.notifier).toggleFavorite(product.id);
        },
      ),
      onTap: () {
        // 3. 使用 ref.read 更新 selectedItemProvider 的状态
        ref.read(selectedItemProvider.notifier).state = product;
        // 然后跳转，无需传递任何参数
        Navigator.pushNamed(context, '/detail');
      },
    );
  }
}
